import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function testDatabaseOperations() {
  try {
    // 测试User模型的CRUD操作
    console.log('开始测试User模型...')
    
    // 创建用户
    const user = await prisma.user.create({
      data: {
        email: 'test@example.com',
        name: '测试用户',
        password: 'password123'
      }
    })
    console.log('创建用户成功:', user)

    // 查询用户
    const foundUser = await prisma.user.findUnique({
      where: { email: 'test@example.com' }
    })
    console.log('查询用户成功:', foundUser)

    // 更新用户
    const updatedUser = await prisma.user.update({
      where: { email: 'test@example.com' },
      data: { name: '更新后的用户名' }
    })
    console.log('更新用户成功:', updatedUser)

    // 测试Merchant模型的CRUD操作
    console.log('\n开始测试Merchant模型...')
    
    // 创建商户
    const merchant = await prisma.merchant.create({
      data: {
        name: '测试商户',
        address: '测试地址',
        phone: '13800138000'
      }
    })
    console.log('创建商户成功:', merchant)

    // 查询商户
    const foundMerchant = await prisma.merchant.findUnique({
      where: { id: merchant.id }
    })
    console.log('查询商户成功:', foundMerchant)

    // 更新商户
    const updatedMerchant = await prisma.merchant.update({
      where: { id: merchant.id },
      data: { name: '更新后的商户名' }
    })
    console.log('更新商户成功:', updatedMerchant)

    // 清理测试数据
    await prisma.user.delete({ where: { email: 'test@example.com' } })
    await prisma.merchant.delete({ where: { id: merchant.id } })
    console.log('\n测试数据清理完成')

  } catch (error) {
    console.error('测试过程中发生错误:', error)
  } finally {
    await prisma.$disconnect()
  }
}

testDatabaseOperations()